import shutil,os
# 如果文件夹下面包含文件夹，那么说明这个文件下的solidity文件
# 引入了其他文件，这种情况我们现在暂时先不做处理。
# 我们现在先处理只有一个solidity文件的情况。
# 所以就先把它移动到outputDir目录下。
# mvDirThatContainDir是输入文件夹整体的操作。
def mvDirThatContainDir(inputDir:str,outputDir:str):
    dir_list = os.listdir(inputDir)
    if not dir_list:
        return
    else:
        for dir in dir_list:
            if(os.path.isdir(os.path.join(inputDir,dir))):
                splitDir(os.path.join(inputDir,dir),outputDir)

# splitDir是单个文件夹的操作，将包含子目录的文件夹移动到指定的outputPath目录下。
def splitDir(file_path:str,outputPath:str):
    d,n=os.path.split(file_path)
#    print(d,n)
    dir_list = os.listdir(file_path)
#    print(dir_list)
    if not dir_list:
#        print("empty")
        return
    else:
        for dir in dir_list:
#           print(dir)
            if os.path.isdir(os.path.join(file_path,dir)):
                dstdir=os.path.join(outputPath,n)
#               print(dstdir)
                shutil.move(file_path,dstdir)
                return


# inputPath="/home/hello/Desktop/BSC_ERC20/contracts12766-12815/contracts"
# outputPath="/home/hello/Desktop/BSC_ERC20/contracts12766-12815/contractsContainDir"
# mvDirThatContainDir(inputPath,outputPath)
